Many information processing systems are configured to replicate data from a storage system at one site to a storage system at another site. In some cases, such arrangements are utilized to support disaster recovery functionality within the information processing system. For example, an enterprise may replicate data from a production data center to a disaster recovery data center. In the event of a disaster at the production site, applications can be started at the disaster recovery site using the data that has been replicated to that site so that the enterprise can continue its business.
Data replication in these and other contexts can be implemented using asynchronous replication at certain times and synchronous replication at other times. For example, asynchronous replication may be configured to periodically transfer data in multiple cycles from a source site to a target site, while synchronous replication may be configured to mirror host writes from the source site to the target site as the writes are made at the source site. Source and target storage systems can therefore each be configured to support both asynchronous and synchronous replication modes.
Conventional approaches to data replication can be problematic under certain conditions. For example, communication link failures or other types of failures occurring during synchronous replication can make it difficult to preserve target replica consistency without undermining system performance. In situations of this type, it may be necessary to perform a time-consuming full data re-synchronization of replicated storage objects between the source and target storage systems. Techniques are therefore needed that can provide significantly more efficient recovery from failures occurring during synchronous replication.